package collection;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class HeroMap {
    public static void main(String[] args) {
        Map<String, Integer> map =new HashMap<>();
        //- 添加、修改操作：
        //  - Object put(Object key,Object value)：将指定key-value添加到(或修改)当前map对象中
        map.put("大桥", 100);
        //  - void putAll(Map m):将m中的所有key-value对存放到当前map中
        Map<String, Integer> map1 = new HashMap<>();
        map1.put("孙尚香", 1009);
        map1.put("曹操", 1009);
        map.putAll(map1);
//        迭代遍历map
        for (String key : map.keySet()) {
            Integer value = map.get(key);
            System.out.println(key + "=" + value);
        }
        //- 删除操作：
        //  - Object remove(Object key)：移除指定key的key-value对，并返回value
//        map.remove("孙尚香");
        //  - void clear()：清空当前map中的所有数据
//        map.clear();
        //- 元素查询的操作：
        //  - Object get(Object key)：获取指定key对应的value
        Integer value = map.get("孙尚香");
        System.out.println(value);
        //  - boolean containsKey(Object key)：是否包含指定的key
        boolean containsKey = map.containsKey("孙尚香");
        //  - boolean containsValue(Object value)：是否包含指定的value
        boolean containsValue = map.containsValue(1009);
        //  - int size()：返回map中key-value对的个数
        int size = map.size();
        //  - boolean isEmpty()：判断当前map是否为空
        boolean empty = map.isEmpty();
        //  - boolean equals(Object obj)：判断当前map和参数对象obj是否相等
        boolean equals = map.equals(map1);
        //- 元视图操作的方法：
        //  - Set keySet()：返回所有key构成的Set集合
        Set<String> keySet = map.keySet();
        //  - Collection values()：返回所有value构成的Collection集合
//        Set<Integer> values = (Set<Integer>) map.values();
        //  - Set entrySet()：返回所有key-value对构成的Set集合
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        for (Map.Entry<String, Integer> entry : entrySet) {
            String key = entry.getKey();
            Integer value1 = entry.getValue();
            System.out.println(key + "=" + value1);
        }
    }
}
